/**
 * 
 */
package com.lgCore.client.workHandler;

import com.lgCore.netty.client.NettyClientBootstrap;
import com.lgCore.netty.message.AskMsg;

import java.util.List;

/**
 * @author ligang
 *
 *  业务service外部调用，如路由，找方法
 *  1 从zk找到服务
 *  2 通过服务端内存找方法
 *  3 调用方法
 *  4 返回结果
 */
public interface ICommonRpcClientService {

	/**
	 * 执行方法来，达到同步目的
	 * @param clientBootstrap 客户端通道
	 * @param askMsg 业务数据
	 */
	Object executeSendRequest(NettyClientBootstrap clientBootstrap, AskMsg askMsg) throws Exception;

	/**
	 * 通过service名称找到zk信息
	 */
	String getServerDataByZk(String serverName);

	/**
	 * 通过zk服务端地址查询到服务端连接
	 */
	NettyClientBootstrap getServerBootStrap(String serverAddr);



	/**
	 * netty服务端失去连接删除netty组数据
	 */
	void removeServerBootStrap(String serverAddr);

}
